﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using QLKCB.Controller;
using QLKCB.Model;

namespace QLKCB
{
    public partial class Form_HoSoBenhAn : Form
    {

        cHoSoBenhAn benhAnController = new cHoSoBenhAn();
        private string maBN;

        public Form_HoSoBenhAn()
        {
            InitializeComponent();
        }

        public Form_HoSoBenhAn(string maBenhnhan)
        {
            maBN = maBenhnhan;
            InitializeComponent();
        }

        private void Form_HoSoBenhAn_FormClosing(object sender, FormClosingEventArgs e)
        {
            Form_QLKhamChuaBenh form = new Form_QLKhamChuaBenh();
            form.Show();
            this.Hide();
        }

        private void Form_HoSoBenhAn_Load(object sender, EventArgs e)
        {
            string maBA = benhAnController.getMaBAExists(maBN);
            showKhoa();

            if (maBA.Equals(""))
            {
                maBA = benhAnController.getMaBenhAn();
                DateTime today = DateTime.Today;
                string ngayLap = today.ToString("dd/MM/yyyy");

                lblMaBA.Text = maBA;
                lblMaBN.Text = maBN;
                lblNgayLapBA.Text = ngayLap;
            }
            else
            {
                DataTable dtHSBA = benhAnController.getHSBAByMaBA(maBA);
                lblMaBA.Text = maBA;
                lblMaBN.Text = dtHSBA.Rows[0]["MaBN"].ToString();
                lblNgayLapBA.Text = DateTime.Parse(dtHSBA.Rows[0]["NgayLapHSBA"].ToString()).ToString("dd/MM/yyyy");
                dtpNhapVien.Value = DateTime.Parse(dtHSBA.Rows[0]["ThoiGianNhapVien"].ToString());
                txtLyDoNhapVien.Text = dtHSBA.Rows[0]["LyDoNhapVien"].ToString();
                txtBenhSu.Text = dtHSBA.Rows[0]["BenhSu"].ToString();
                string maBS = dtHSBA.Rows[0]["MaBS"].ToString();
                cbbKhoa.SelectedValue = benhAnController.getKhoaByBacSi(maBS);
                cbbBacSi.SelectedValue = maBS;

            }
        }

        public void showKhoa()
        {
            DataTable dtKhoa = benhAnController.getAllKhoa();
            int numOfKhoa = dtKhoa.Rows.Count;
            cKhoa[] doiTuong = new cKhoa[numOfKhoa + 1];
            doiTuong[0] = new cKhoa { maKhoa = "0", tenKhoa = " -- Chọn Khoa -- " };

            for (int i = 0; i < numOfKhoa; i++)
            {
                doiTuong[i + 1] = new cKhoa { maKhoa = dtKhoa.Rows[i][0].ToString(), tenKhoa = dtKhoa.Rows[i][1].ToString() };
            }

            cbbKhoa.DataSource = doiTuong;
            cbbKhoa.DisplayMember = "tenKhoa";
            cbbKhoa.ValueMember = "maKhoa";

        }

        private void cbbKhoa_SelectedIndexChanged(object sender, EventArgs e)
        {

            string maKhoa = cbbKhoa.SelectedValue.ToString();
            DataTable dtBacSi = benhAnController.getBacSiByKhoa(maKhoa);
            cbbBacSi.DataSource = dtBacSi;
            cbbBacSi.DisplayMember = "TenBS";
            cbbBacSi.ValueMember = "MaBS";

        }

        private string getError()
        {
            string str = "";

            if (txtLyDoNhapVien.Text.Equals(""))
            {
                str += " - Lý do nhập viện không được trống\r\n";
            }
            if (cbbKhoa.SelectedValue.ToString().Equals("0"))
            {
                str += " - Vui lòng chọn khoa chữa bệnh";
            }

            return str;
        }

        private void btnLuuDKKB_Click(object sender, EventArgs e)
        {
            string strError = getError();
            if (strError.Equals(""))
            {
                string maBA = lblMaBA.Text;
                string maBN = lblMaBN.Text;
                DateTime ngayLap = DateTime.Today;
                string tinhHinh = "";
                if (rdChetTruocVaoVien.Checked)
                {
                    tinhHinh = "CHETTRUOC";
                }
                else if (rdChuyenVien.Checked)
                {
                    tinhHinh = "CHUYENVIEN";
                }
                else if (rdTuYVe.Checked)
                {
                    tinhHinh = "TUYVE";
                }
                else if (rdTronVien.Checked)
                {
                    tinhHinh = "TRONVIEN";
                }
                else if (rdTuVong.Checked)
                {
                    tinhHinh = "TUVONG";
                }
                else if (rdXuatVien.Checked)
                {
                    tinhHinh = "XUATVIEN";
                }
                else
                {
                    tinhHinh = "CHUAXET";
                }

                string lydo = txtLyDoNhapVien.Text;
                string benhsu = txtBenhSu.Text;
                string chuandoan = txtChanDoanLucRa.Text;
                string maBS = cbbBacSi.SelectedValue.ToString();
                DateTime thoiGianNhapVien = dtpNhapVien.Value;
                DateTime thoiGianXuatVien = dtpXuatVien.Value;

                if (benhAnController.getMaBAExists(maBN).Equals(""))
                {
                    int result = benhAnController.insertBenhAn(maBA, maBS, maBN, tinhHinh, ngayLap, thoiGianNhapVien, thoiGianXuatVien, lydo, benhsu, chuandoan);
                    if (result > 0)
                    {
                        MessageBox.Show("Thêm hồ sơ bệnh án thành công");
                    }
                    else
                    {
                        MessageBox.Show("Thêm hồ sơ bệnh án không thành công");
                    }
                }
                else
                {
                    benhAnController.updateBenhAn(maBA, maBS, maBN, tinhHinh, ngayLap, thoiGianNhapVien, thoiGianXuatVien, lydo, benhsu, chuandoan);
                    MessageBox.Show("Cập nhật hồ sơ bệnh án thành công");
                }

                Form_QLKhamChuaBenh form = new Form_QLKhamChuaBenh();
                form.Show();
                this.Hide();

            }
            else
            {
                MessageBox.Show(strError);
            }
        }

    }
}
